package compilador.semantico;

import compilador.lexico.TipoToken;

/**
 * Representação genérica das propriedades particulares de um símbolo qualquer
 * da tabela de símbolos. Para cada categoria de símbolo, podem existir
 * diferentes propriedades extras, que têm de estar representadas em filhas
 * desta classe.
 *
 * @author Carlos H V Pinto
 * @author Lucas S Bueno
 */
public abstract class PropriedadesSimboloBasico {

    private String lexema;
    private TipoToken tipoToken;
    private CategoriaSimbolo categoria;
    private int linha;

    public PropriedadesSimboloBasico(String lexema, TipoToken tipoToken, CategoriaSimbolo categoria) {
        this.lexema = lexema;
        this.tipoToken = tipoToken;
        this.categoria = categoria;
    }

    public int getLinha() {
        return linha;
    }

    public void setLinha(int linha) {
        this.linha = linha;
    }    
    
    public String getLexema() {
        return lexema;
    }

    public CategoriaSimbolo getCategoria() {
        return categoria;
    }

    public TipoToken getTipoToken() {
        return tipoToken;
    }

    public void setLexema(String lexema) {
        this.lexema = lexema;
    }

    public void setTipoToken(TipoToken tipoToken) {
        this.tipoToken = tipoToken;
    }

    public void setCategoria(CategoriaSimbolo categoria) {
        this.categoria = categoria;
    }   
}
